In recent years, the network bandwidth has been increasingly expanded with the spread of optical communications and the like. However, as explained below, the network bandwidth is not effectively used due to the influence of network delay.
A conventional transfer device executes packet transmission by a TCP (Transmission Control Protocol). In the TCP, a receive window size is set, and after transmission of packets equivalent to the receive window size, whether each of the packets has arrived at a destination is determined by receipt of an ACK (Acknowledge) from the destination. After having confirmed the arrival of the packet, the transfer device transmits the next packet.
FIG. 12 is a diagram for explaining the conventional technology. As illustrated in FIG. 12, a transmitting-side transfer device transmits packets 1a equivalent to a receive window size to a receiving-side transfer device, and receives an ACK 1b from the receiving side. By the receipt of the ACK 1b, the transmitting-side transfer device confirms that the packet 1a has arrived at a destination, and transmits the next packet 1c to the receiving-side transfer device. A time between the transmission of the packets 1a and the receipt of the ACK 1b is called an RTT (Round Trip Time).
A standard data amount of the receive window size used in the TCP is 64 KB. When an RTT is X (ms), data in the amount of 64 KB×(1000/X) only can be transmitted per second. For example, when an RTT is 200 (ms), an amount of data that can be transmitted per second is 2.56 (Mbps). That is, when the receive window size is 64 KB, and the RTT is 200 (ms), a transmittable data amount is 2.56 (Mbps) no matter how wide the network bandwidth is.
To resolve the above-described problem, there are various conventional technologies. A conventional technology 1 is designed to enlarge a receive window size by TCP scale option, thereby increasing an amount of data to be transmitted at one time. Then, in the conventional technology 1, after transmission of a packet, if no ACK is received within a response delay time set on the basis of regular measurement, the packet is considered to be lost, and the packet is retransmitted.
FIG. 13 is a diagram for explaining the conventional technology 1. As illustrated in FIG. 13, a transfer device according to the conventional technology 1 transmits a packet 2a to the receiving side, and, when having received an ACK 2b of the packet 2a within a response delay time 3a, determines that the packet 2a has arrived at the receiving side. On the other hand, the transfer device transmits a packet 2c to the receiving side, and, when having received no ACK of the packet 2c within a response delay time 3b, considers the packet 2c to be lost and retransmits a packet 2d corresponding to the packet 2c. 
In a conventional technology 2, a packet-transmitting-side transfer device transmits packets in ascending order of packet ID. Then, a packet-receiving-side transfer device monitors the order of packet IDs of received packets, and, if any packet ID is missing, requests for retransmission of a corresponding packet.
FIG. 14 is a diagram for explaining the conventional technology 2. As illustrated in FIG. 14, in the conventional technology 2, the transmitting-side transfer device transmits packets 4a, 4b, 4c, 4d, and 4e in this order to the receiving-side transfer device. Packet IDs of the packets 4a, 4b, 4c, 4d, and 4e are 1, 2, 3, 4, and 5, respectively. The receiving-side transfer device receives the packets 4a, 4b, 4c, and 4e. The receiving-side transfer device monitors packet IDs of the packets 4a, 4b, 4c, and 4e, and detects that packet ID “4” is missing. In this case, the receiving-side transfer device transmits a retransmission request packet 5a to the transmitting-side transfer device. The retransmission request packet 5a contains a packet ID of a packet to be retransmitted. The transmitting-side transfer device transmits the packet 4d requested to be retransmitted to the receiving-side transfer device. These related-art examples are described, for example in [Patent document 1] Japanese Laid-open Patent Publication No. 2008-141633.
However, the above-described conventional technologies have a problem that to perform data transfer in the utmost limit of the network bandwidth, the receive window size has to be increased, and it is not possible to prevent wasteful retransmission.
For example, in the above-described conventional technology 1, if no ACK is received within the response delay time, a packet is considered to be lost, and the packet is retransmitted. However, an increase in the load on a network may delay the arrival of a packet, and an ACK does not arrive at the transmitting-side transfer device within the response delay time. In such a case, retransmission performed by the transmitting side is wasteful retransmission. A packet which has been transmitted from the transmitting-side transfer device but has not arrived at the receiving-side transfer device is called a packet on-the-fly.
In the above-described conventional technology 2, the receiving-side transfer device monitors the order of packet IDs, detects a missing packet, and requests for retransmission of the packet. However, in this conventional technology 2, to detect loss of a retransmitted packet, a response delay time has to be set in the same manner as the conventional technology 1. FIG. 15 is a diagram for explaining the problem in the conventional technology 2. As illustrated in FIG. 15, in the first transmission of packets, loss of the packet 4d can be detected as explained in FIG. 14; however, in retransmission of the packet 4d, it could be that the packet 4d is lost again. In this case, loss of the packet 4d isn't detected by the order of packet IDs of packets 4f and later. Namely, to detect loss of the retransmitted packet 4d, the transmitting-side transfer device has to set a response delay time and determine whether or not to transmit the retransmitted packet again.
One aspect of the present invention is intended to provide a transfer device, transfer method, and transfer program capable of preventing wasteful retransmission even when there are a lot of packets on-the-fly.